# 1. 按照是否需要自己定义,分为内置函数和自定义函数

# 内置函数
# print("hello world")

# 自定义函数
def fn():
    print("自定义函数")


# fn()

# 2.根据函数是否需要传递参数分为有参数的函数(居多)和无参数的函数

# 无参数的函数
def test():
    print("年少不知软饭香!")


# test()

# 有参数的函数:
def jia(num1, num2):  # num1和num2表示形参
    print(num1 + num2)


# jia(12,34) # 12和 34叫做实际参数,也叫实参,他们会把函数定义中的形参替换

# 3.根据函数执行完毕后有没有返回值:分为有返回值的函数和无返回值的函数
# 使用return关键字实现数据的返回

# 无返回值的函数
def demo():
    print("我没有返回值!")


# demo()

# 有返回值的函数
def fn():
    return "有返回值!"
    print("haha")


str = fn()


# print(str)

# return关键字后面可以一次性返回多个数据
def fn1():
    return 12, 34, 56


tup = fn1()
# print(tup)   # (12,34,56)

'''
1.函数中若有返回值返回,使用return关键字
2.函数中return关键字后面的程序不会执行
3.return关键字后面可以一次性返回多个数据,返回的数据格式是以元组的形式出现
4.在函数中若不写return关键字,那这时候print()函数时,输出的结果是None.
5.在函数中return后面没有任何数据,默认返回的是None.
'''


# 函数中没有return关键字或者return关键字后面没有返回数据,默认返回的是None
def fn2():
    print(124)


print(fn2())  # None


def fn3():
    return


# print(fn3())  # None


# 第一步
def cha(num1, num2):
    return num1 - num2


# num 是 cha()函数调用完成以后返回的结果
# 第二步:
def say(num):
    print("两个数字相减的结果是:", num)


# 87  12

n = cha(87, 12)
say(n)
